package com.ruoyi.service.project.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 项目结算单
 * </p>
 *
 * @author Zane
 * @since 2025-10-26
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("t_project_settle")
public class ProjectSettleEntity implements Serializable {

  private static final long serialVersionUID = 1L;

  /**
   * 主键
   */
  @TableId(value = "id", type = IdType.AUTO)
  private Long id;

  /**
   * 公司ID
   */
  @TableField(value = "com_id")
  private Long comId;

  /**
   * 项目ID
   */
  @TableField("project_id")
  private String projectId;

  /**
   * 项目名称
   */
  @TableField("project_name")
  private String projectName;

  /**
   * 结算状态  0 结算中  1 结算完成,默认0
   */
  @TableField("settle_status")
  private Integer settleStatus;

  /**
   * 项目预算，备用金 + 人工成本
   */
  @TableField("project_budget")
  private BigDecimal projectBudget;

  /**
   * 备用金金额
   */
  @TableField("reserve_fund")
  private BigDecimal reserveFund;
  /**
   * 人工成本人数
   */
  @TableField("labor_count")
  private Integer laborCount;
  /**
   * 人工成本金额
   */
  @TableField("labor_cost")
  private BigDecimal laborCost;

  /**
   * 锁定金额
   */
  @TableField("locked_amount")
  private BigDecimal lockedAmount;

  /**
   * 备用金使用金额
   */
  @TableField("reserve_fund_used")
  private BigDecimal reserveFundUsed;

  /**
   * 人工成本应付金额
   */
  @TableField("labor_cost_pay")
  private BigDecimal laborCostPay;

  /**
   * 平台佣金
   */
  @TableField("commission")
  private BigDecimal commission;

  /**
   * 佣金系数
   */
  @TableField("commission_rate")
  private String commissionRate;

  /**
   * 实扣金额
   */
  @TableField("actual_deduction")
  private BigDecimal actualDeduction;

  /**
   * 项目负责人
   */
  @TableField("project_leader")
  private Long projectLeader;

  /**
   * 项目管理员
   */
  @TableField("project_manager")
  private Long projectManager;

  /**
   * 创建者
   */
  @TableField("create_by")
  private Long createBy;

  /**
   * 创建时间
   */
  @TableField("create_time")
  private LocalDateTime createTime;

  /**
   * 更新者
   */
  @TableField("update_by")
  private Long updateBy;

  /**
   * 更新时间
   */
  @TableField("update_time")
  private LocalDateTime updateTime;


}
